﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Linq;
using System.Reflection;
using System.Windows.Forms;
using System.Data;
using ClsUtilities;

namespace ClsController
{
    partial class FrmSearchBox : Form
    {
        private String valor_nombre;
        private DataTable tablaResultado;
        private ClsLogicaNeg logica;
        private bool resultado;

        private DataRow valorSeleccionado;

        public FrmSearchBox()
        {
            InitializeComponent();
            logica = new ClsLogicaNeg();
            resultado = false;
        }

        #region Assembly Attribute Accessors

        public string AssemblyTitle
        {
            get
            {
                object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false);
                if (attributes.Length > 0)
                {
                    AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0];
                    if (titleAttribute.Title != "")
                    {
                        return titleAttribute.Title;
                    }
                }
                return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase);
            }
        }

        public string AssemblyVersion
        {
            get
            {
                return Assembly.GetExecutingAssembly().GetName().Version.ToString();
            }
        }

        public string AssemblyDescription
        {
            get
            {
                object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false);
                if (attributes.Length == 0)
                {
                    return "";
                }
                return ((AssemblyDescriptionAttribute)attributes[0]).Description;
            }
        }

        public string AssemblyProduct
        {
            get
            {
                object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false);
                if (attributes.Length == 0)
                {
                    return "";
                }
                return ((AssemblyProductAttribute)attributes[0]).Product;
            }
        }

        public string AssemblyCopyright
        {
            get
            {
                object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);
                if (attributes.Length == 0)
                {
                    return "";
                }
                return ((AssemblyCopyrightAttribute)attributes[0]).Copyright;
            }
        }

        public string AssemblyCompany
        {
            get
            {
                object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false);
                if (attributes.Length == 0)
                {
                    return "";
                }
                return ((AssemblyCompanyAttribute)attributes[0]).Company;
            }
        }
        #endregion

        public String campoNombre
        {
            set
            {
                valor_nombre = value;
                txtSearchNom.Text = valor_nombre;
            }
        }

        public DataTable resulBusqueda
        {
            set
            {
                tablaResultado = value;
            }
        }

        public DataRow valorSearch
        {
            get
            {
                return valorSeleccionado;
            }
        }

        public bool validaRestultado
        {
            get { return resultado; }
        }

        private void btnbuscar_Click(object sender, EventArgs e)
        {
            resultado = logica.CargarPacietnes(txtSearchNom, txtSearchFSNAME, tstLSNAME, dgvResultado);
            if(resultado)
            resultado = false;
        }

        private void FrmSearchBox_Load(object sender, EventArgs e)
        {
            InitPantalla();
        }

        private void InitPantalla()
        {
            dgvResultado.DataSource = tablaResultado;
            GridBusuquedaPacientes();           
        }

        private void validaEstadoDelGrid()
        {
           if (dgvResultado.RowCount < 1)
            {
                int posiciony;
                posiciony = dgvResultado.Location.Y;
                dgvResultado.Visible = false;
                lblmatch.Location = new System.Drawing.Point(11, posiciony);
                lblmatch.Visible = true;
            }
            else
            {
                dgvResultado.Visible = true;
                lblmatch.Visible = false;
            }
        }

        private void formatoDelGrid()
        {
            logica.FormateaGridFormato1(dgvResultado);
        }

        private void GridBusuquedaPacientes()
        {
            //dgvResultado.Columns.Add(,"NAME");
            DataGridViewLinkColumn linkcol;
            DataGridViewTextBoxColumn dtacol;
            linkcol = new DataGridViewLinkColumn();
            linkcol.DataPropertyName = TableStruct.PATIENT_DESCR_VALUES.PA_NAME.ToString(); 
            linkcol.HeaderText = "NAME";
            dgvResultado.Columns.Add(linkcol);

            dtacol = new DataGridViewTextBoxColumn();
            dtacol.DataPropertyName = TableStruct.PATIENT_DESCR_VALUES.PA_FIRST_NAME.ToString();
            dtacol.HeaderText = "FIRST NAME";
            dtacol.ReadOnly = true;
            dgvResultado.Columns.Add(dtacol);

            dtacol = new DataGridViewTextBoxColumn();
            dtacol.DataPropertyName = TableStruct.PATIENT_DESCR_VALUES.PA_LAST_NAME.ToString();
            dtacol.HeaderText = "LAST NAME";
            dtacol.ReadOnly = true;
            dgvResultado.Columns.Add(dtacol);

            dtacol = new DataGridViewTextBoxColumn();
            dtacol.DataPropertyName = TableStruct.PATIENT_DESCR_VALUES.AG_NAME.ToString();
            dtacol.HeaderText = "AGENCY";
            dtacol.ReadOnly = true;
            dgvResultado.Columns.Add(dtacol);


            dtacol = new DataGridViewTextBoxColumn();
            dtacol.DataPropertyName = TableStruct.PATIENT_DESCR_VALUES.WRK_NAME.ToString();
            dtacol.HeaderText = "THERAPIST";
            dtacol.ReadOnly = true;
            dgvResultado.Columns.Add(dtacol);

            formatoDelGrid();
            validaEstadoDelGrid();
        }

        private void dgvResultado_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == 0)
            {
                valorSeleccionado = ((DataRowView)dgvResultado.Rows[e.RowIndex].DataBoundItem).Row;
                resultado = true;
                this.Close();
            }
            else
            {
                resultado = false;
            }
        }

    }
}
